#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//int get_days_of_month(int y,int m)
//{
//	int d = 0;
//	switch (m)
//	{
//	case 1:
//	case 3:
//	case 5:
//	case 7:
//	case 8:
//	case 10:
//	case 12:
//		d = 31;
//		break;
//	case 4:
//	case 6:
//	case 9:
//	case 11:
//		d = 30;
//		break;
//	case 2:
//		if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0))
//			d = 29;
//		else
//			d = 28;
//	}
//	return d;
//}
//
//
//int main()
//{
//	int y = 0;
//	int m = 0;
//	while (scanf("%d %d", &y, &m) != EOF)
//	{
//		int d=get_days_of_month(y, m);
//		printf("%d\n", d);
//	}
//	return 0;
//}



int get_days_of_month(int y, int m)
{
	int d = 0;
	int days[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
	d = days[m];
	if (((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0)) && m == 2)
	{
		d += 1;
	}
	return d;
}


int main()
{
	int y = 0;
	int m = 0;
	while (scanf("%d %d", &y, &m) != EOF)
	{
		int d = get_days_of_month(y, m);
		printf("%d\n", d);
	}
	return 0;
}